# Поиск по составным селекторам
# В большинстве случаев мы можем напрямую обратиться к нужному элементу и извлечь его данные. Однако иногда нас
# ждут неожиданные препятствия. Представьте ситуацию, в которой на странице есть два элемента с одинаковым классом,
# но размещенные в разных родительских элементах. Как нам извлечь конкретный из них?
#смотрите на example.html


# В этом примере оба тега <p> имеют одинаковый класс text. Для того, чтобы получить тег, родительский элемент
# которого имеет класс "author", нам и потребуется составной селектор.


# Символ пробела (' ') в составном селекторе служит для выбора элементов, которые находятся внутри заданного родителя,
# независимо от уровня их вложенности. То есть, .author .text будет означать поиск элемента с классом text, является
# потомком (на любом уровне вложенности) элемента с классом author.


# .author .text - это означает, что мы ищем тег с классом text, родителем которого является тег с классом author.
# Элемент .text может находиться на любом уровне вложенности от элемента .author и между ними может быть сколько
# угодно других тегов.

# Потомки или дочерние элементы
#
# ">" — символ, который, в отличие от пробела, используется для выбора непосредственных дочерних элементов относительно
# указанного родительского элемента. В контексте парсинга веб-страниц, это означает, что селектор будет сосредоточен
# на более узком диапазоне элементов, исключая те, которые находятся на других уровнях вложенности.

# .img_box > .name_item — данный синтаксис позволяет нам точно определить и выбрать элемент с классом .name_item,
# который является непосредственным дочерним элементом (англ, "child") с классом .img_box. В этом случае, .img_box
# выступает в роли родительского элемента (англ,"parent").

#
# Поиск по порядковому номеру дочернего элемента

#description > li:nth-child(3) — этот синтаксис чрезвычайно полезен, особенно если вы хотите найти конкретный элемент
# в списке. Функция :nth-child() позволяет выбирать элемент на основе его порядкового номера в списке дочерних элементов.
# В данном примере мы ищем третий элемент в списке.


# Использование двух классов и более
#
# Предположим, у вас есть HTML-элемент с классами class1 и class2. Если нужно найти элемент, который имеет
# именно эти два класса, вы можете использовать селектор .class1.class2 (без пробела между ними).

# Это особенно полезно, когда вы сталкиваетесь с более сложными структурами HTML, где одни и те же классы могут
# использоваться в разных контекстах. С помощью такой комбинации классов вы сможете точнее находить нужные вам теги.

# Ключевой момент здесь — отсутствие пробела между именами классов. Это говорит парсеру, что искомый элемент должен
# иметь оба эти класса одновременно. Стоит это запомнить, чтобы уточнить вашу стратегию парсинга и сделать её
# максимально эффективной.





















